python初学者

リストの掛け算

arr = [[]]*5
arr[0].append(0)

というコードを実行すると何が起きるでしょうか。
私は、

[[0], [], [], [], []]

という結果を期待しましたが、実際には

[[0], [0], [0], [0], [0]]

となります。諦めて内包表記で初期化をしましょう、というお話でした。

arr = [[] for i in range(5)]

Python のリストの扱いで注意することが詳しいです。コメント欄の「pythonインタープリタの気持ちになってみるのはどうでしょう?」が大好きです。

social